Peripheral registers are used to provide control, status or data information to or from a peripheral module of an integrated circuit (IC) chip. Each register can include one or more bit fields, each including one or more bits. Conventional peripheral registers are 32 bits wide, so a total of 32 bits can be mapped into one peripheral register. If fewer bits are required, some bit positions in the peripheral register are left empty.
The industry standard peripheral bus for 32-bit microcontroller units (MCUs) is ARM Inc.'s AMBA Peripheral Bus (APB). Prior to AMBA4 the APB only supported 32-bit access. AMBA4 APB allows byte strobes for write operations where data can be written 16 or 8 bits at a time. AMBA4 read operations, however, always read 32 bits at a time. Since many peripheral registers may trigger an action when read (e.g. set or clear a flag, update a queue), many peripheral registers cannot be defined as 8-bit or 16-bit registers because an 8-bit or 16-bit register may be modified by a read operation to a neighboring register.